﻿using System;

namespace Framework.Validation
{
    /// <summary>
    /// Declare interface for <see cref="IValidator" /> factory
    /// </summary>
    public interface IValidatorFactory
    {
        /// <summary>
        /// Creates <see cref="IValidator"/> instance with default ruleset.
        /// </summary>
        /// <typeparam name="T">The type of validatable object.</typeparam>
        IValidator Create<T>();

        /// <summary>
        /// Creates <see cref="IValidator"/> instance.
        /// </summary>
        /// <typeparam name="T">The type of validatable object.</typeparam>
        IValidator Create<T>(string ruleSetName);
    }
}
